Node-RED block in Snap4City Microservice library node-red-contrib-snap4city-developer is "service-search-within-gps-area">
It allows to retrieve the set of services that are near a given GPS position. The services can be filtered as belonging
to specific categories (e.g. Accommodation, Hotel, Restaurant etc), values or model. It can also be used to find services that have
a WKT spatial description that contains a specific GPS position.
Inputs
A JSON with these parameters:
- latitudebottomleft
number
- latitude of the Bottom Left Point of a rectangular area.
- longitudebottomleft
number
- longitude of the Bottom Left Point of a rectangular area.
- latitudetopright
number
- latitude of the Top Right Point of a rectangular area.
- longitudetopright
number
- longitude of the Top Right Point of a rectangular area.
- filter
string
- a list of conditions (separated with ;) on value names matching a constant value. The matching operator can be:
- value name:string value (e.g status:Active), search for devices having the dynamic string attribute "value name" with a specific value, the match is case sensitive
- value name=numeric value (e.g. temperature=18), search for devices having the dynamic numeric attribute "value name" with a specific numeric value.
- value name>numeric value (e.g. temperature>20), search for devices having a dynamic numeric attribute greater than a specific value.
- value name>=numeric value (e.g. temperature>20), search for devices having a dynamic numeric attribute greater or equal than a specific value.
- value name<numeric value (e.g. temperature<20), search for devices having a dynamic numeric attribute less than a specific value.
- value name<=numeric value (e.g. temperature<=20), search for devices having a dynamic numeric attribute less or equal than a specific value.
If multiple conditions are present they are considered in AND.
- values
string
- If filter is not empty, list of value names (separated by ;) to be returned for each result, if omitted all values are returned.
- sortOnValue
string
- If filter is not empty, the value name to sort the result, it can be like "value name:asc|desc:type" (e.g. temperature:desc:short), order direction
is "asc" if omitted, type can be string, date, long or short (if type is omitted string is assumed). The type is used to force sorting
for dates and numbers. If the parameter is omitted the sort is on the distance from GPS position, if "none" is specified no specific
sort is used.
- categories
string
- the list of categories of the services to be retrieved separated with semicolon, if omitted all kinds of services
are returned. It can contain macro categories or categories, if a macro category is specified all categories
in the macro category are used. The complete list of categories and macro categories can be retrieved on servicemap.disit.org
- model
string
- search for iot devices created with a specific model name.
- maxresults
number
- maximum number of results to be returned (if parameter is missing 100 is assumed), if it is 0 all results are returned
- lang
string
- ISO 2 chars language code (e.g. “it”, “en”, “fr”, “de”, “es”) to be used for returned descriptions if available in
multiple languages. Currently for languages other than “it” and “en” it returns “en” descriptions. (if parameter
is missing “en” is assumed)
- geometry
boolean
- true/false, if true it returns a “hasGeometry” property for each service stating if the service has a complex WKT
geometries (linestring, polygon) associated with it (if parameter is missing “false” is assumed)
Outputs
- ServiceUri Array
- Returns an array containing the servicesUri of each service found
- GeoJSON Results
- It returns the services split in three sections (BusStops , SensorSites, Services). Each section is provided
as GeoJSON “FeatureCollection”, the results are sorted by distance, additionally in each section the
“fullCount” property reports the full number of results available matching the query
- All services together
- It returns the services merge in Results section
Details
The node can receive a JSON with the parameters described in the Inputs section and with them generate the output JSON.
If the values are not present in the input JSON, these are read by those in the configuration. If they are not present
in either part, an error is generated for the necessary parameters.